编码URI(javascript)
# [JS操作cookie以及本地存储(sessionStorage 和 localStorage )] 014-bD
JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:
unescape,decodeURI,decodeURIComponent 。
区别:
我们可以知道:escape()除了 ASCII 字母、数字和特定的符号外,对传进来的字符串全部进行转义编码,因此如果想对URL编码,最好不要使用此方法。
而encodeURI()用于编码整个URI,因为URI中的合法字符都不会被编码转换。
encodeURIComponent方法在编码单个URIComponent 应当是最常用的,它可以将参数中的中文、特殊字符进行转义,而不会影响整个URL。
参考:
关于URL编码
encodeURI encodeURIComponent 的作用 及 应用
php中编码url
# PHP - urlencode和rawurlencode的区别
https://blog.csdn.net/amonest/article/details/6431183
看看PHP Manual对两个函数的说明:
urlencode:返回字符串,此字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)。此编码与 WWW 表单 POST 数据的编码方式是一样的,同时与 application/x-www-form-urlencoded 的媒体类型编码方式一样。由于历史原因,此编码在将空格编码为加号(+)方面与 RFC1738 编码(参见 rawurlencode())不同。
rawurlencode:返回字符串,此字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数。这是在 RFC 1738 中描述的编码,是为了保护原义字符以免其被解释为特殊的 URL 定界符,同时保护 URL 格式以免其被传输媒体(像一些邮件系统)使用字符转换时弄乱。
acuviewer中特殊字符串
页面中字符串显示如下:Test Spcecial </chars>Lecturer ';":/.,?=-+_)(*&^%$#@!
1 | <script type="text/javascript" src="inc/header.js.php"></script> |